/**

 @Name：layuiAdmin 用户管理 管理员管理 角色管理
 @Author：star1029
 @Site：http://www.layui.com/admin/
 @License：LPPL
    
 */


layui.define(['table', 'form'], function(exports) {
	var $ = layui.$,
		setter = layui.setter,
		admin = layui.admin,
		view = layui.view,
		table = layui.table,
		form = layui.form;

	//管理员管理
	table.render({
		elem: '#LAY-user-back-manage',
		// method: "post",
		url: setter.api_source + 'sysuser/page',
		parseData: function(res) { //res 即为原始返回的数据
			return {
				"code": res.code, //解析接口状态
				"msg": res.message, //解析提示文本
				"count": res.data.total, //解析数据长度
				"data": res.data.rows //解析数据列表
			};
		},
		cols: [
			[{
				type: 'checkbox',
				fixed: 'left'
			}, {
				field: 'id',
				width: 80,
				title: 'ID',
				sort: true
			}, {
				field: 'name',
				title: '昵称'
			}, {
				field: 'username',
				title: '账号'
			}, {
				field: 'password',
				title: '密码'
			}, {
				field: 'role',
				templet: "#buttonRole",
				title: '角色',
				minWidth: 80,
				align: 'center'
			}, {
				field: 'state',
				title: '状态',
				templet: '#buttonTpl',
				minWidth: 80,
				align: 'center'
			}, {
				title: '操作',
				width: 150,
				align: 'center',
				fixed: 'right',
				toolbar: '#table-useradmin-admin'
			}]
		],
		text: '对不起，加载出现异常！',
		page: true,
		limit: 10,
		limits: [5, 10, 15],

	});

	

	//监听工具条
	table.on('tool(LAY-user-back-manage)', function(obj) {
		var data = obj.data;
		var tempdata = obj.data;
		if (obj.event === 'del') {
			layer.prompt({
				formType: 1,
				title: '敏感操作，请验证口令'
			}, function(value, index) {
				layer.close(index);
				layer.confirm('确定删除此管理员？', function(index) {
					
					console.log(obj);
					
					var ids = new Array();
					ids.push(obj.data.id);
					
					console.log(ids);
					
					admin.req({
						type: "post",
						data: {
							"ids": ids
						},
						url: setter.api_source + 'sysuser/saveOrUpdate',
						beforeSend: function(XMLHttpRequest) {
							//ShowLoading();
						},
						success: function(data, textStatus) {
							obj.del();
							layer.close(index);
						},
						complete: function(XMLHttpRequest, textStatus) {
							//HideLoading();
						},
						error: function() {
							//请求出错处理
						}
					});
				});
			});
		} else if (obj.event === 'edit') {
			admin.popup({
				title: '编辑管理员',
				area: ['420px', '450px'],
				id: 'LAY-popup-user-add',
				success: function(layero, index) {
					// 请求角色信息列表
					var roleList;
					admin.req({
						type: "get",
						dataType: 'json',
						async:false,
						url: setter.api_source + 'sysuser/role',
						beforeSend: function(XMLHttpRequest) {},
						success: function(data, textStatus) {
							tempdata["roleList"] = data.data.roleList;
						},
						complete: function(XMLHttpRequest, textStatus) {},
						error: function() {}
					});
					
					// 指定要渲染的模板html
					view(this.id).render('user/administrators/user/sysusereditform', tempdata).done(function() {
						// 指定渲染的fiter
						form.render(null, 'layuiadmin-form-admin');
						//监听提交
						form.on('submit(LAY-user-back-submit)', function(data) {
							var field = data.field; //获取提交的字段
							// 解决switch控件关闭时没有值的情况
							var status = "1";
							if (field.status != null) {
								status = field.status;
							}
							// 组织权限
							var roleIdList = new Array();
							$("input:checkbox[name='roleIdList']:checked").each(function() { // 遍历name=roleIdList的多选框
								roleIdList.push($(this).val());
							});
							admin.req({
								type: "post",
								contentType: 'application/json; charset=UTF-8',
								data: JSON.stringify({
									"account": field.account,
									"id": field.id,
									"name": field.name,
									"password": field.password,
									"roleIdList": roleIdList,
									"status": status
								}),
								url: setter.api_source + 'sysuser/saveOrUpdate',
								beforeSend: function(XMLHttpRequest) {
									//ShowLoading();
								},
								success: function(data, textStatus) {
									layui.table.reload('LAY-user-back-manage'); //重载表格
									layer.close(index); //执行关闭 
								},
								complete: function(XMLHttpRequest, textStatus) {
									//HideLoading();
								},
								error: function() {
									//请求出错处理
								}
							});
						});
					});
				}
			});
		}
	});

	exports('sysuser', {})
});
